Along with development and popularization of Internet and wireless communications, multi-channel video communications, including multi-person video chats, video conferences and network video games etc., provide more convenient and expedite communications between people, more enriched entertaining activities, and thus become more and more popular.
In multi-channel video communications, since a multi-channel network may be heterogeneous and time-variant, and terminal devices (such as mobile phones and PCs) may have different processing capabilities, it is required a video encoder can generate a bit-stream which can meet different requirements and is adaptive to network conditions fluctuations. In addition, when the number of persons participating in the video communication increases, the amount of network transmission data increases correspondingly, and much processing pressure is also added to terminal devices. Thus it is important to properly assign bandwidths for the multi-channel video communications to achieve optimal video communication quality with limited bandwidth resources.
In conventional video communications, each client device participating in video communication has a video codec. Coding parameters of the codec are configured for video encoding and decoding according to network conditions or terminal processing capability of an average user or most users. Original video data is encoded to generate a single bit-stream with specific decoding video quality, and the single bit-stream is broadcasted to all users participating in the video communication. For the same video source, the videos received by all users are of the same quality. The disadvantages of the conventional technology are obvious, i.e., it can not accommodate the various terminal processing capabilities and different network conditions. For a user with relatively good network conditions (e.g. with relatively large network bandwidth) or with a terminal device having strong processing capability (e.g., can handle pictures with high display resolution which can not be processed by most terminal devices), resources (the network bandwidth or the device processing capability) are not fully used and the video communication quality is not optimal. For a user with relatively bad network conditions (e.g. with relatively small network bandwidth or in a network with heavy traffic) or with a terminal device having poor processing capability (e.g. can only display pictures with low resolution), the video communication may congest the network (which results in long-time buffering of the video) or the terminal device can not perform processing properly (e.g. can not display the video normally).
Regarding the above problems, each client device may set a separate video codec for each connection path connected to the client device, and coding parameters of each video codec are adjusted separately according to the network conditions of each connection path and the processing capability of the terminal device to generate and transmit bit-streams which have different decoding video qualities for different terminals. However, since video encoding has high computation complexity and a dedicated video codec needs to be set up for each terminal newly connected to the client device, when the number of connections in the video communication increases, a big amount of processing resources will be occupied and too much memory resources will be consumed, which makes some hand-held devices can not perform multi-channel communication.